1. Field of the Invention
The present invention relates to a method, system, and program for building a queue to test a device.
2. Description of the Related Art
A storage controller manages Input/Output (I/O) requests from connected hosts and initiators to or one or more interconnected disk drives which may be configured as a Redundant Array of Independent Disks (RAID), Just a Bunch of Disks (JBOD), Direct Access Storage Device (DASD), etc. During the development or manufacture of such storage controllers, there may be a need to build a test queue of I/O requests to simulate and test how the storage controller manages I/O requests in a real time environment where the storage controller receives numerous operations from connected devices.
FIG. 1 illustrates a testing system 2. A test initiator 4 sends I/O requests to a storage controller 6 directed to a storage device 8, such as one or more interconnected disk drives, over a SCSI bus 10 to test the I/O performance at the storage controller 6. In order to build an I/O queue at the storage controller 6, the test initiator 4 signals a diagnostic device 12 over a test control signal line 14, which is a separate communication channel from the SCSI bus 10, to prevent the storage controller 6 from arbitrating on the SCSI bus 10 to complete queued I/Os. The storage controller 6 is assigned a lower SCSI device address than the diagnostic device 12, such as less than or equal to address five, and the diagnostic device 12 is assigned SCSI address six and the test initiator 4 is assigned the highest SCSI device address, address seven.
In response to detecting the test control signal active on the test control signal line 14 and detecting a SCSI address arbitrating on the SCSI bus 10 that is less than that of the diagnostic device 12, such as less than or equal to five, the diagnostic device 12 asserts its address bit on the bus 10 to block the storage controller 6 from arbitrating on the bus 10. The diagnostic device 12 would deassert its address bit from the bus 10 after a second or so. The storage controller 6 I/O queue would build-up because the diagnostic device 12 prevents the storage controller 6 from processing the I/O queue by blocking the storage controller 6 from accessing the SCSI bus 10 to complete queued I/O requests. The diagnostic device 12 has priority over the storage controller 6 on the SCSI bus 10 because the diagnostic device 12 has a higher SCSI address than the storage controller 6.
After the I/O queue reaches a sufficient level, the test initiator 4 may then cease the test control signal active on the test control signal line 14 to cause the diagnostic device 12 to deassert its address on the SCSI bus 10 in order to allow the storage controller 6 to access the SCSI bus 10 to complete processing queued I/O requests. The test initiator 4 can then monitor the storage controller 6 performance when processing the I/O queue.